package com.zhang.controller.cart;

import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.stp.StpUtil;
import com.zhang.cart.service.ICartService;
import com.zhang.cart.vo.CartVo;
import com.zhang.common.util.result.R;
import com.zhang.common.util.result.RUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/cart/")
@SaCheckLogin
public class CartController {
    @Autowired
    private ICartService cartService;

    /**
     * 加入购物车
     *
     * @param skuId
     * @param num
     * @return {@link R}
     */
    @PostMapping("add")
    public R addGoodsToCart(@RequestParam("skuId") Long skuId, @RequestParam("num") Integer num) {
        return cartService.addGoodsToCart(skuId, num);
    }

    /**
     * 获取登录人的购物车列表
     *
     * @return {@link R}
     */
    @GetMapping("get/list")
    public R listByUserId() {
        Long userId = StpUtil.getLoginIdAsLong();
        CartVo cartVo = cartService.listByUserId(userId);
        return RUtils.successData(cartVo);
    }

    @DeleteMapping("del/list")
    public R delListBySkuIds(@RequestBody List<String> skuIds) {
        Long userId = StpUtil.getLoginIdAsLong();
        cartService.delListByUserIdAndSkuIds(userId, skuIds);
        return RUtils.successMsg("删除成功!");
    }
}
